// 获取DOM元素
const classTypeTableBody = document.getElementById('class-type-table-body');
const addClassTypeBtn = document.getElementById('add-class-type-btn');
const dataModal = document.getElementById('data-modal');
const closeModal = document.getElementById('close-modal');
const dataForm = document.getElementById('data-form');
const saveDataBtn = document.getElementById('save-data-btn');
const modalTitle = document.getElementById('modal-title');
const cancelBtn = document.getElementById('cancel-btn'); // 取消按钮
let currentEditingItem = null; // 当前正在编辑的项
const logoutBtn = document.getElementById('logout-btn');

// 渲染教学班类型表格
function renderClassTypeTable(classTypes) {
  classTypeTableBody.innerHTML = '';
  classTypes.forEach(classType => {
    const row = document.createElement('tr');
    row.innerHTML = `
      <td>${classType.id}</td>
      <td>${classType.name}</td>
      <td>
        <button class="edit-btn" data-id="${classType.id}">编辑</button>
        <button class="delete-btn" data-id="${classType.id}">删除</button>
      </td>
    `;
    classTypeTableBody.appendChild(row);
  });
}

// 获取教学班类型列表
function fetchClassTypeList() {
  $.ajax({
    url: 'http://localhost:8083/api/category/list',  // 后端获取教学班类型接口
    type: 'GET',
    success: function(response) {
      if (response.code === 200) {
        renderClassTypeTable(response.data);  // 渲染返回的教学班类型数据
      } else {
        alert("获取教学班类型数据失败");
      }
    },
    error: function(xhr, status, error) {
      console.error('获取教学班类型数据失败:', error);
    }
  });
}

// 打开弹窗
function openDataModal(isEdit = false, item = null) {
  dataModal.style.display = 'block';

  currentEditingItem = item || null;

  if (isEdit) {
    modalTitle.textContent = '编辑教学班类型';
    document.getElementById('name').value = item.name;
    saveDataBtn.dataset.id = item.id; // 保存项的ID
  } else {
    modalTitle.textContent = '新增教学班类型';
    dataForm.reset();
    delete saveDataBtn.dataset.id; // 清除ID
  }
}

// 关闭弹窗
closeModal.addEventListener('click', () => {
  dataModal.style.display = 'none';
});

// 取消按钮
cancelBtn.addEventListener('click', () => {
  dataModal.style.display = 'none';
});

// 保存教学班类型
dataForm.addEventListener('submit', (e) => {
  e.preventDefault();
  const name = document.getElementById('name').value;

  if (saveDataBtn.dataset.id) {
    // 编辑模式
    const itemId = parseInt(saveDataBtn.dataset.id, 10); // 确保ID是整数
    updateClassType(itemId, name);
  } else {
    // 新增模式
    addClassType(name);
  }

  dataModal.style.display = 'none';
});

// 新增教学班类型
function addClassType(name) {
  const classType = { name };
  $.ajax({
    url: 'http://localhost:8083/api/category/add',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(classType),
    success: function(response) {
      if (response.code === 200) {
        fetchClassTypeList(); // 添加成功后刷新教学班类型列表
      } else {
        alert("添加教学班类型失败");
      }
    },
    error: function(xhr, status, error) {
      console.error('添加教学班类型失败:', error);
    }
  });
}

// 更新教学班类型
function updateClassType(id, name) {
  const classType = { id, name };
  $.ajax({
    url: 'http://localhost:8083/api/category/update',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(classType),
    success: function(response) {
      if (response.code === 200) {
        fetchClassTypeList(); // 更新成功后刷新教学班类型列表
      } else {
        alert("更新教学班类型失败");
      }
    },
    error: function(xhr, status, error) {
      console.error('更新教学班类型失败:', error);
    }
  });
}

// 删除教学班类型
function deleteClassType(id) {
  $.ajax({
    url: `http://localhost:8083/api/category/delete/${id}`,
    type: 'POST',
    success: function(response) {
      if (response.code === 200) {
        fetchClassTypeList(); // 删除成功后刷新教学班类型列表
      } else {
        alert("删除教学班类型失败");
      }
    },
    error: function(xhr, status, error) {
      console.error('删除教学班类型失败:', error);
    }
  });
}

// 编辑教学班类型
function editData(id) {
  $.ajax({
    url: `http://localhost:8083/api/category/list`, // 获取教学班类型数据
    type: 'GET',
    success: function(response) {
      const item = response.data.find(i => i.id == id);
      if (item) {
        openDataModal(true, item); // 打开编辑弹窗
      }
    },
    error: function(xhr, status, error) {
      console.error('获取教学班类型数据失败:', error);
    }
  });
}

// 删除教学班类型
function deleteData(id) {
  deleteClassType(id);  // 调用删除接口
}

// 新增教学班类型按钮事件
addClassTypeBtn.addEventListener('click', () => {
  openDataModal(); // 打开新增弹窗
});

// 事件委托：处理编辑和删除按钮的点击事件
document.addEventListener('click', (event) => {
  if (event.target.classList.contains('edit-btn')) {
    const id = event.target.dataset.id;
    editData(id); // 编辑对应的数据
  }

  if (event.target.classList.contains('delete-btn')) {
    const id = event.target.dataset.id;
    deleteData(id); // 删除对应的数据
  }
});

// 退出按钮点击事件
logoutBtn.addEventListener('click', () => {
  window.location.href = '../login.html'; // 假设你要跳转到登录页面
});

// 页面初始化时获取教学班类型列表
$(document).ready(function() {
  fetchClassTypeList();
});
